package edu.disenio.atencion.medica;

import java.util.ArrayList;
import java.util.Collection;

import edu.disenio.atencion.medica.zonas.ComparadorDeZonasPorEquals;

public class CentroDeAtencion {

	private Collection<Prestador> prestadores= new ArrayList<Prestador>();


	public void agregarPrestador(Prestador prestador) {
		this.prestadores.add(prestador);
	}
	
	public Collection<Prestador> prestadoresQuePuedenAtender(Pedido unPedido) {
		Collection<Prestador> prestadoresAptos = new ArrayList<Prestador>();
		
		for (Prestador prestador : this.prestadores) {
			if(prestador.podesAtender(unPedido)){
				prestadoresAptos.add(prestador);
			}
		}
		return prestadoresAptos;
		
	}
	
	
	public static void main(String[] args) {
		String ESPECIALIDAD_PEDIATRA="Pediatria";
		String ESPECIALIDAD_NEUMONOLOGO = "Neumonologia";
		String ESPECIALIDAD_CARDIOLOGO = "Cardiologia";
		String ESPECIALIDAD_EMERGENTOLOGO = "Emergentologia";
		
		CentroDeAtencion centro = new CentroDeAtencion();
		
		Prestador emergentologoSolitario = new Medico(ESPECIALIDAD_EMERGENTOLOGO);
		Prestador pediatraSolitario = new Medico(ESPECIALIDAD_PEDIATRA);
		
		Ambulancia ambulancia = new Ambulancia();
		ambulancia.subirPrestador(new Medico(ESPECIALIDAD_NEUMONOLOGO));
		ambulancia.subirPrestador(new Medico(ESPECIALIDAD_CARDIOLOGO));
		ambulancia.subirPrestador(new Medico(ESPECIALIDAD_EMERGENTOLOGO));
		ambulancia.subirPrestador(new Medico(ESPECIALIDAD_PEDIATRA));
		ambulancia.setComparadorDeZonas(new ComparadorDeZonasPorEquals());
		
		centro.agregarPrestador(emergentologoSolitario);
		centro.agregarPrestador(pediatraSolitario);
		centro.agregarPrestador(ambulancia);
		
		
		Pedido pedidoPediatra = new Pedido(ESPECIALIDAD_PEDIATRA);
		
		pediatraSolitario.podesAtender(pedidoPediatra);   /*deberia ser true*/
		emergentologoSolitario.podesAtender(pedidoPediatra); /*deberia ser false*/
		
		Collection<Prestador> aptos = centro.prestadoresQuePuedenAtender(pedidoPediatra); /*deberia de estar la ambulancia y el pediatra solitario*/
		
		Prestador elElegido = aptos.iterator().next();
		elElegido.atender(pedidoPediatra);
		
	}


	
}
